home *** CD-ROM | disk | FTP | other *** search
- 10 '****************************************************************
- 20 '* Program name: DOSCOL Author: Kyle Cummings *
- 30 '* Date written: 07-28-86 Installation: Joppa MD. *
- 40 '* Version: KC861021 *
- 50 '* *
- 60 '* Program purpose: To set the color of DOS from a BASIC *
- 70 '* program using ANSI codes. *
- 80 '****************************************************************
- 90 CLS
- 100 KEY OFF
- 110 FORG=7
- 120 BACG=0
- 130 ' -- Ask some good questions.
- 140 CLS
- 150 ' -- Get the colors for Background and Foreground.
- 160 GOSUB 360
- 170 GOSUB 820
- 180 BACG$=MID$(STR$(BACG),2,LEN(STR$(BACG)))
- 190 IF BACG<10 THEN BACG$="0"+BACG$
- 200 ANCODE$=CHR$(27)+"[00;"+FORG$+";"+BACG$+"m"
- 210 CLS
- 220 LOCATE 12,17:PRINT "Setting DOS color with the following ANSI code:";
- 230 LOCATE 14,40-CINT(LEN(ANCODE$)/2):PRINT ANCODE$;
- 240 ' -- Open the output file.
- 250 CLOSE #1:OPEN "SETCOLOR.ASI" FOR OUTPUT AS #1
- 260 ' -- Write the ANSI code.
- 270 PRINT #1,ANCODE$
- 280 CLOSE #1
- 290 ' -- Make DOS set itself.
- 300 SHELL "Type SETCOLOR.ASI"
- 310 ' -- Kill the file.
- 320 KILL "SETCOLOR.ASI"
- 330 ' -- Get out.
- 340 SYSTEM
- 350 ' -- Get the color for Foreground.
- 360 PRINT "Possible FOREGROUND colors are:"
- 370 PRINT
- 380 PRINT "0 = Black 8 = Gray"
- 390 PRINT "1 = Blue 9 = Light Blue"
- 400 PRINT "2 = Green 10 = Light Green"
- 410 PRINT "3 = Cyan 11 = Light Cyan"
- 420 PRINT "4 = Red 12 = Light Red"
- 430 PRINT "5 = Magenta 13 = Light Magenta"
- 440 PRINT "6 = Brown 14 = Yellow"
- 450 PRINT "7 = White 15 = High-intensity White"
- 460 PRINT
- 470 PRINT "*** NOTE: To make BLINKING colors, add 16 to the above numbers."
- 480 PRINT
- 490 PRINT "What do you want the FOREGROUND color to be? (-";FORG;"-)";
- 500 INPUT " ",ANS$
- 510 IF ANS$="" THEN GOTO 550
- 520 ANS=VAL(ANS$)
- 530 IF ANS<0 OR ANS>31 THEN GOTO 490
- 540 FORG=ANS
- 550 IFLAG=0:BFLAG=0
- 560 ' -- Set BLINK ON
- 570 IF FORG>15 AND FORG<32 THEN BFLAG=5
- 580 ' -- Bring the color down.
- 590 IF FORG>15 THEN FORG=FORG-16
- 600 ' -- Set High Intensity ON
- 610 IF FORG>7 AND FORG<16 THEN IFLAG=1
- 620 ' -- Bring the color down.
- 630 IF FORG>7 THEN FORG=FORG-8
- 640 ' -- Figure out the ANSI color.
- 650 IF FORG=0 THEN FG=30
- 660 IF FORG=1 THEN FG=34
- 670 IF FORG=2 THEN FG=32
- 680 IF FORG=3 THEN FG=36
- 690 IF FORG=4 THEN FG=31
- 700 IF FORG=5 THEN FG=35
- 710 IF FORG=6 THEN FG=33
- 720 IF FORG=7 THEN FG=37
- 730 ' -- Add it all together.
- 740 FORG$=MID$(STR$(FG),2,LEN(STR$(FG)))
- 750 IF FG<10 THEN FORG$="0"+FORG$
- 760 IF BFLAG<>0 THEN FORG$=MID$(STR$(BFLAG),2,LEN(STR$(BFLAG)))+";"+FORG$
- 770 IF BFLAG<10 AND BFLAG<>0 THEN FORG$="0"+FORG$
- 780 IF IFLAG<>0 THEN FORG$=MID$(STR$(IFLAG),2,LEN(STR$(IFLAG)))+";"+FORG$
- 790 IF IFLAG<10 AND IFLAG<>0 THEN FORG$="0"+FORG$
- 800 RETURN
- 810 ' -- Get the color for Background.
- 820 CLS
- 830 PRINT "Possible BACKGROUND colors are:"
- 840 PRINT
- 850 PRINT "0 = Black"
- 860 PRINT "1 = Blue"
- 870 PRINT "2 = Green"
- 880 PRINT "3 = Cyan"
- 890 PRINT "4 = Red"
- 900 PRINT "5 = Magenta"
- 910 PRINT "6 = Brown"
- 920 PRINT "7 = White"
- 930 PRINT
- 940 PRINT "What do you want the BACKGROUND color to be? (-";BACG;"-)";
- 950 INPUT " ",ANS$
- 960 IF ANS$="" THEN GOTO 1000
- 970 ANS=VAL(ANS$)
- 980 IF ANS<0 OR ANS>7 THEN GOTO 940
- 990 BACG=ANS
- 1000 IF BACG=0 THEN BACG=40
- 1010 IF BACG=1 THEN BACG=44
- 1020 IF BACG=2 THEN BACG=42
- 1030 IF BACG=3 THEN BACG=46
- 1040 IF BACG=4 THEN BACG=41
- 1050 IF BACG=5 THEN BACG=45
- 1060 IF BACG=6 THEN BACG=43
- 1070 IF BACG=7 THEN BACG=47
- 1080 RETURN